package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;

/**
 * 周报对象 admin_weekly
 * 
 * @author ruoyi
 * @date 2021-01-20
 */
public class AdminWeekly extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 工作任务
     */
    private List<AdminWeeklyJob> weeklyJobs;

    /** 周报id */
    private Long weeklyId;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 产品id/项目id */
    @Excel(name = "产品id/项目id")
    private Long productId;

    /** 0.产品/1.项目 */
    @Excel(name = "0.产品/1.项目")
    private Long productType;

    /** 工作组id */
    private Long deptId;

    /** 周报日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "周报起始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date weeklyDateStart;
    /** 周报日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "周报结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date weeklyDateEnd;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date modifyTime;

    /** 产品/项目名称 */
    @Excel(name = "产品/项目名称")
    private String productName;

    /** 姓名 */
    @Excel(name = "姓名")
    private String userName;

    /** 工作组 */
    @Excel(name = "工作组")
    private String deptName;

    /** 需求完成率 */
    @Excel(name = "需求完成率")
    private String demandFinishedRate;


    /** 任务完成率 */
    @Excel(name = "任务完成率")
    private String taskFinishedRate;

    /** 工作进度 */
    @Excel(name = "工作进度")
    private String process;


    /** 产品转测合计 */
    @Excel(name = "产品转测数量合计")
    private Long toTestAmountTotal;

    /** 新增缺陷合计 */
    @Excel(name = "新增缺陷数量合计")
    private Long newBugAmountTotal;

    /** 修复缺陷合计 */
    @Excel(name = "修复缺陷数量合计")
    private Long fixBugAmountTotal;

    /** 产品体验合计 */
    @Excel(name = "产品体验数量合计")
    private Long productExperienceAmountTotal;

    /** 产品体验通过合计 */
    @Excel(name = "产品体验通过数量合计")
    private Long productExperiencePassAmountTotal;

    /** 设计评审会议数量合计 */
    @Excel(name = "设计评审会议数量合计")
    private Long designReviewAmountTotal;

    /** 设计评审会议通过数量合计 */
    @Excel(name = "设计评审会议通过数量合计")
    private Long designReviewPassAmountTotal;

    /** 检测缺陷数量合计 */
    @Excel(name = "检测缺陷数量合计")
    private Long detectBugAmountTotal;

    /** 关闭缺陷数量合计 */
    @Excel(name = "关闭缺陷数量合计")
    private Long closeBugAmountTotal;

    /** 部署项目数量合计 */
    @Excel(name = "部署项目数量合计")
    private Long deployProductAmountTotal;

    /** 文档贡献数量合计 */
    @Excel(name = "文档贡献数量合计")
    private Long documentAmountTotal;

    /** 培训数量合计 */
    @Excel(name = "培训数量合计")
    private Long trainingAmountTotal;

    /** 工作内容 */
    @Excel(name = "工作内容")
    private String jobContent;
    /** 附件 **/
    private String attachmentName;
    private String attachmentPath;
    private MultipartFile attachmentFile;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;


    public Long getWeeklyId() {
        return weeklyId;
    }

    public void setWeeklyId(Long weeklyId) {
        this.weeklyId = weeklyId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    public void setProductType(Long productType) 
    {
        this.productType = productType;
    }

    public Long getProductType() 
    {
        return productType;
    }

    public Date getWeeklyDateStart() {
        return weeklyDateStart;
    }

    public void setWeeklyDateStart(Date weeklyDateStart) {
        this.weeklyDateStart = weeklyDateStart;
    }

    public Date getWeeklyDateEnd() {
        return weeklyDateEnd;
    }

    public void setWeeklyDateEnd(Date weeklyDateEnd) {
        this.weeklyDateEnd = weeklyDateEnd;
    }

    public void setModifyTime(Date modifyTime)
    {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() 
    {
        return modifyTime;
    }

    public List<AdminWeeklyJob> getWeeklyJobs() {
        return weeklyJobs;
    }

    public void setWeeklyJobs(List<AdminWeeklyJob> weeklyJobs) {
        this.weeklyJobs = weeklyJobs;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDemandFinishedRate() {
        return demandFinishedRate;
    }

    public void setDemandFinishedRate(String demandFinishedRate) {
        this.demandFinishedRate = demandFinishedRate;
    }

    public String getTaskFinishedRate() {
        return taskFinishedRate;
    }

    public void setTaskFinishedRate(String taskFinishedRate) {
        this.taskFinishedRate = taskFinishedRate;
    }

    public String getProcess() {
        return process;
    }

    public void setProcess(String process) {
        this.process = process;
    }

    public Long getToTestAmountTotal() {
        return toTestAmountTotal;
    }

    public void setToTestAmountTotal(Long toTestAmountTotal) {
        this.toTestAmountTotal = toTestAmountTotal;
    }

    public Long getNewBugAmountTotal() {
        return newBugAmountTotal;
    }

    public void setNewBugAmountTotal(Long newBugAmountTotal) {
        this.newBugAmountTotal = newBugAmountTotal;
    }

    public Long getFixBugAmountTotal() {
        return fixBugAmountTotal;
    }

    public void setFixBugAmountTotal(Long fixBugAmountTotal) {
        this.fixBugAmountTotal = fixBugAmountTotal;
    }

    public Long getProductExperienceAmountTotal() {
        return productExperienceAmountTotal;
    }

    public void setProductExperienceAmountTotal(Long productExperienceAmountTotal) {
        this.productExperienceAmountTotal = productExperienceAmountTotal;
    }

    public Long getDesignReviewAmountTotal() {
        return designReviewAmountTotal;
    }

    public void setDesignReviewAmountTotal(Long designReviewAmountTotal) {
        this.designReviewAmountTotal = designReviewAmountTotal;
    }

    public Long getDesignReviewPassAmountTotal() {
        return designReviewPassAmountTotal;
    }

    public void setDesignReviewPassAmountTotal(Long designReviewPassAmountTotal) {
        this.designReviewPassAmountTotal = designReviewPassAmountTotal;
    }

    public Long getDetectBugAmountTotal() {
        return detectBugAmountTotal;
    }

    public void setDetectBugAmountTotal(Long detectBugAmountTotal) {
        this.detectBugAmountTotal = detectBugAmountTotal;
    }

    public Long getDeployProductAmountTotal() {
        return deployProductAmountTotal;
    }

    public void setDeployProductAmountTotal(Long deployProductAmountTotal) {
        this.deployProductAmountTotal = deployProductAmountTotal;
    }

    public Long getDocumentAmountTotal() {
        return documentAmountTotal;
    }

    public void setDocumentAmountTotal(Long documentAmountTotal) {
        this.documentAmountTotal = documentAmountTotal;
    }

    public Long getTrainingAmountTotal() {
        return trainingAmountTotal;
    }

    public void setTrainingAmountTotal(Long trainingAmountTotal) {
        this.trainingAmountTotal = trainingAmountTotal;
    }

    public Long getProductExperiencePassAmountTotal() {
        return productExperiencePassAmountTotal;
    }

    public void setProductExperiencePassAmountTotal(Long productExperiencePassAmountTotal) {
        this.productExperiencePassAmountTotal = productExperiencePassAmountTotal;
    }

    public Long getCloseBugAmountTotal() {
        return closeBugAmountTotal;
    }

    public void setCloseBugAmountTotal(Long closeBugAmountTotal) {
        this.closeBugAmountTotal = closeBugAmountTotal;
    }

    public String getJobContent() {
        return jobContent;
    }

    public void setJobContent(String jobContent) {
        this.jobContent = jobContent;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getAttachmentName() {
        return attachmentName;
    }

    public void setAttachmentName(String attachmentName) {
        this.attachmentName = attachmentName;
    }

    public String getAttachmentPath() {
        return attachmentPath;
    }

    public void setAttachmentPath(String attachmentPath) {
        this.attachmentPath = attachmentPath;
    }

    public MultipartFile getAttachmentFile() {
        return attachmentFile;
    }

    public void setAttachmentFile(MultipartFile attachmentFile) {
        this.attachmentFile = attachmentFile;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("weeklyId", getWeeklyId())
            .append("userId", getUserId())
            .append("productId", getProductId())
            .append("productType", getProductType())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("modifyTime", getModifyTime())
            .toString();
    }
}
